<html>
<head><meta charset="utf-8"><title>Make it easier to build the standard libr… compiler-team#394 · t-compiler/major changes · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/index.html">t-compiler/major changes</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html">Make it easier to build the standard libr… compiler-team#394</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="221145945"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221145945" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> triagebot <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221145945">(Dec 29 2020 at 16:26)</a>:</h4>
<p>A new proposal has been announced: <a href="https://github.com/rust-lang/compiler-team/issues/394">Make it easier to build the standard library #394</a>. It will be announced at the next meeting to try and draw attention to it, but usually MCPs are not discussed during triage meetings. If you think this would benefit from discussion amongst the team, consider proposing a design meeting.</p>



<a name="221145950"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221145950" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221145950">(Dec 29 2020 at 16:27)</a>:</h4>
<p><span class="user-mention" data-user-id="116122">@simulacrum</span> the bot works <span aria-label="tada" class="emoji emoji-1f389" role="img" title="tada">:tada:</span></p>



<a name="221146539"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221146539" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221146539">(Dec 29 2020 at 16:34)</a>:</h4>
<p>so, originally I expected 2. to be the controversial part of this proposal, but after looking at the discussion in <a href="https://github.com/rust-lang/rust/pull/76533">https://github.com/rust-lang/rust/pull/76533</a> again it seems there's concerns about both parts</p>



<a name="221146599"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221146599" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221146599">(Dec 29 2020 at 16:35)</a>:</h4>
<p><span class="user-mention" data-user-id="120518">@Eric Huss</span>  do you mind expanding on why splitting library/ into a separate workspace means rustc-dep-of-std is necessary (and more necessary than it is now)?</p>



<a name="221146819"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221146819" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> bjorn3 <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221146819">(Dec 29 2020 at 16:38)</a>:</h4>
<p>What would be the benefit of using <code>git subtree</code>? Just cd'ing to <code>library/</code> should be enough for most users.</p>



<a name="221146829"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221146829" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221146829">(Dec 29 2020 at 16:38)</a>:</h4>
<p>cloning the rust-lang/rust repository takes a while</p>



<a name="221146857"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221146857" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221146857">(Dec 29 2020 at 16:39)</a>:</h4>
<p>and you have to know that the build process for the standard library is different than the compiler; the main issue is that <code>cargo build</code> in the top level of rust-lang/rust can never work</p>



<a name="221146865"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221146865" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221146865">(Dec 29 2020 at 16:39)</a>:</h4>
<p>but I think <code>cargo build</code> in rust-lang/library is feasible</p>



<a name="221146984"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221146984" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221146984">(Dec 29 2020 at 16:40)</a>:</h4>
<p>cc <span class="user-mention" data-user-id="203546">@Laurențiu Nicola</span> though, you suggested the subtree</p>



<a name="221146987"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221146987" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> bjorn3 <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221146987">(Dec 29 2020 at 16:40)</a>:</h4>
<p>Most of the time of cloning is cloning the submodules, which isn't necessary except for the <code>library/stdarch</code> and <code>library/backtrace</code> submodules.</p>



<a name="221147035"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221147035" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221147035">(Dec 29 2020 at 16:41)</a>:</h4>
<p>ah ok I see - it's necessary now because of the unified workspace, but if the workspace were split x.py could be smarter about it</p>



<a name="221147053"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221147053" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> bjorn3 <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221147053">(Dec 29 2020 at 16:42)</a>:</h4>
<p>Is it allowed to have <code>.gitmodules</code> in a subdirectory by the way?</p>



<a name="221147099"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221147099" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221147099">(Dec 29 2020 at 16:42)</a>:</h4>
<p>/me searches google</p>



<a name="221147127"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221147127" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Laurențiu <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221147127">(Dec 29 2020 at 16:42)</a>:</h4>
<p>I think so, but it's weird. I remember it makes <code>git submodule</code> act weirdly.</p>



<a name="221147135"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221147135" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221147135">(Dec 29 2020 at 16:42)</a>:</h4>
<p>if it's not, we could consider making stdarch and backtrace subtrees too</p>



<a name="221147306"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221147306" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221147306">(Dec 29 2020 at 16:44)</a>:</h4>
<p>(personally I find subtree a lot easier to understand than submodules)</p>



<a name="221147452"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221147452" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> bjorn3 <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221147452">(Dec 29 2020 at 16:46)</a>:</h4>
<p>Stdarch has an 8.2MB .git dir.</p>



<a name="221147511"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221147511" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221147511">(Dec 29 2020 at 16:47)</a>:</h4>
<p>you'd have to download that anyway with submodules though, right?</p>



<a name="221147653"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221147653" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Pietro Albini <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221147653">(Dec 29 2020 at 16:49)</a>:</h4>
<p>there are cases where submodules aren't needed tho</p>



<a name="221147693"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221147693" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> bjorn3 <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221147693">(Dec 29 2020 at 16:49)</a>:</h4>
<p>arm-intrinsics.html and x86-intel.xml are 21.8MB together.</p>



<a name="221147725"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221147725" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Pietro Albini <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221147725">(Dec 29 2020 at 16:49)</a>:</h4>
<p>(mostly on CI -- which doesn't use <code>git submodule</code> -- and when you need to interact with the commit history)</p>



<a name="221148897"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221148897" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221148897">(Dec 29 2020 at 17:04)</a>:</h4>
<p><span class="user-mention silent" data-user-id="121055">Pietro Albini</span> <a href="#narrow/stream/233931-t-compiler.2Fmajor-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394/near/221147725">said</a>:</p>
<blockquote>
<p>(mostly on CI -- which doesn't use <code>git submodule</code> -- and when you need to interact with the commit history)</p>
</blockquote>
<p>how does CI build the compiler without using x.py? x.py runs git submodule</p>



<a name="221148970"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221148970" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221148970">(Dec 29 2020 at 17:05)</a>:</h4>
<p>and I'd be shocked to see anyone using the git history without running x.py at least once</p>



<a name="221149297"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221149297" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221149297">(Dec 29 2020 at 17:09)</a>:</h4>
<p>anyway, far bigger than any of those is LLVM:</p>
<div class="codehilite"><pre><span></span><code>1.1G    .git/modules/src/llvm-project
</code></pre></div>



<a name="221149305"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221149305" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221149305">(Dec 29 2020 at 17:09)</a>:</h4>
<p>and that would go away completely with a subtree scheme</p>



<a name="221149693"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221149693" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> bjorn3 <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221149693">(Dec 29 2020 at 17:14)</a>:</h4>
<p>Don't use a subtree for LLVM!!! That will add the full 1.1GB to the rust-lang/rust repo itself.</p>



<a name="221149705"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221149705" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221149705">(Dec 29 2020 at 17:14)</a>:</h4>
<p>haha, no that's not what I meant</p>



<a name="221149718"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221149718" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221149718">(Dec 29 2020 at 17:14)</a>:</h4>
<p>if library/ is a subtree, then cloning rust-lang/library doesn't require cloning the llvm submodule</p>



<a name="221149859"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221149859" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> bjorn3 <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221149859">(Dec 29 2020 at 17:16)</a>:</h4>
<p>It doesn't anyway. It is <code>x.py</code> that clones it. It can easily avoid doing this if you only want to compile libstd. In fact it already avoids it when using prebuilt llvm or when you don't include LLVM in the <code>codegen-backends</code> key of <code>config.toml</code>.</p>



<a name="221149977"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221149977" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221149977">(Dec 29 2020 at 17:17)</a>:</h4>
<p>Hmm, ok - if cargo build works on libstd, you never have to run x.py</p>



<a name="221150110"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221150110" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221150110">(Dec 29 2020 at 17:19)</a>:</h4>
<p>note that this doesn't work currently because of the unified workspace:</p>
<div class="codehilite"><pre><span></span><code>error: failed to read `/home/joshua/src/rust/rust2/src/tools/rust-installer/Cargo.toml`
</code></pre></div>



<a name="221150210"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221150210" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221150210">(Dec 29 2020 at 17:21)</a>:</h4>
<p>oh excellent, but on <a href="https://github.com/rust-lang/rust/pull/76533">https://github.com/rust-lang/rust/pull/76533</a> it does work except for stdarch and version mismatches</p>



<a name="221150336"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221150336" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> bjorn3 <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221150336">(Dec 29 2020 at 17:22)</a>:</h4>
<p>I don't remember when it was added, but we should now need the <code>library/backtrace</code> submodule too.</p>



<a name="221150367"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221150367" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221150367">(Dec 29 2020 at 17:22)</a>:</h4>
<p>yeah, let me rebase it</p>



<a name="221150494"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221150494" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> bjorn3 <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221150494">(Dec 29 2020 at 17:24)</a>:</h4>
<p>You should probably copy the <code>Cargo.lock</code> of the commit you rebase on top of and use it as both <code>Cargo.lock</code> and <code>library/Cargo.lock</code> for the branch. <code>cargo build</code> should then remove all unnecessary entries while keeping all versions intact.</p>



<a name="221150602"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221150602" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221150602">(Dec 29 2020 at 17:25)</a>:</h4>
<p>for now I regenerated the file, I can fix it up later</p>



<a name="221150608"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221150608" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221150608">(Dec 29 2020 at 17:26)</a>:</h4>
<p>just want to see if this can work</p>



<a name="221150871"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221150871" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221150871">(Dec 29 2020 at 17:28)</a>:</h4>
<p>ok yes, after rebasing <a href="https://github.com/rust-lang/rust/pull/76533">https://github.com/rust-lang/rust/pull/76533</a> and running <code>git submodule update library/{backtrace,stdarch}</code>, <code>cargo +nightly build</code> works from library/test without going through x.py :)</p>



<a name="221150905"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221150905" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> cuviper <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221150905">(Dec 29 2020 at 17:29)</a>:</h4>
<p>Doesn't <code>std</code> use <code>src/llvm-project/libunwind</code>?</p>



<a name="221150910"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221150910" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> cuviper <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221150910">(Dec 29 2020 at 17:29)</a>:</h4>
<p>At least optionally</p>



<a name="221151001"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221151001" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221151001">(Dec 29 2020 at 17:30)</a>:</h4>
<p>I see <code>feature = llvm-libunwind</code>, but I'm ok with that just not working out of tree</p>



<a name="221151002"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221151002" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> bjorn3 <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221151002">(Dec 29 2020 at 17:30)</a>:</h4>
<p>Yes, <a href="https://github.com/rust-lang/rust/blob/d9a105fdd46c926ae606777a46dd90e5b838f92f/library/unwind/build.rs#L138">https://github.com/rust-lang/rust/blob/d9a105fdd46c926ae606777a46dd90e5b838f92f/library/unwind/build.rs#L138</a></p>



<a name="221151063"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221151063" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> bjorn3 <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221151063">(Dec 29 2020 at 17:31)</a>:</h4>
<p>There are cases where it is not optional like linux + musl, fuchsia and fortanix.</p>



<a name="221151070"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221151070" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221151070">(Dec 29 2020 at 17:31)</a>:</h4>
<p>if you try to enable it the error isn't <em>great</em> but it's not awful either:</p>
<div class="codehilite"><pre><span></span><code>  running: &quot;c++&quot; &quot;-O0&quot; &quot;-ffunction-sections&quot; &quot;-fdata-sections&quot; &quot;-fPIC&quot; &quot;-g&quot; &quot;-fno-omit-frame-pointer&quot; &quot;-m64&quot; &quot;-I&quot; &quot;../../src/llvm-project/libunwind/include&quot; &quot;-std=c99&quot; &quot;-std=c++11&quot; &quot;-nostdinc++&quot; &quot;-fno-exceptions&quot; &quot;-fno-rtti&quot; &quot;-fstrict-aliasing&quot; &quot;-funwind-tables&quot; &quot;-fvisibility=hidden&quot; &quot;-D__LITTLE_ENDIAN__=1&quot; &quot;-D_LIBUNWIND_DISABLE_VISIBILITY_ANNOTATIONS&quot; &quot;-o&quot; &quot;/home/joshua/.local/lib/cargo/target/debug/build/unwind-aac1f3c9ddb7d19f/out/../../src/llvm-project/libunwind/src/Unwind-EHABI.o&quot; &quot;-c&quot; &quot;../../src/llvm-project/libunwind/src/Unwind-EHABI.cpp&quot;
  cargo:warning=c++: error: ../../src/llvm-project/libunwind/src/Unwind-EHABI.cpp: No such file or directory
  cargo:warning=c++: fatal error: no input files
  cargo:warning=compilation terminated.
  exit code: 1
</code></pre></div>



<a name="221151137"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221151137" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221151137">(Dec 29 2020 at 17:32)</a>:</h4>
<p><span class="user-mention silent" data-user-id="133247">bjorn3</span> <a href="#narrow/stream/233931-t-compiler.2Fmajor-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394/near/221151063">said</a>:</p>
<blockquote>
<p>There are cases where it is not optional like linux + musl, fuchsia and fortanix.</p>
</blockquote>
<p>ok, so don't support those out of tree <span aria-label="shrug" class="emoji emoji-1f937" role="img" title="shrug">:shrug:</span> anyone doing complicated bootstrapping things will have to use x.py anyway</p>



<a name="221151178"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221151178" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221151178">(Dec 29 2020 at 17:32)</a>:</h4>
<p>this is for the very simplest "I want to add an API to the standard library"</p>



<a name="221151359"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221151359" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221151359">(Dec 29 2020 at 17:34)</a>:</h4>
<p>and in fact it would break on things like <a href="https://github.com/rust-lang/rust/pull/68692#issuecomment-580899667">https://github.com/rust-lang/rust/pull/68692#issuecomment-580899667</a> (it would compile fine out of tree), but I'm ok with that because it's very rare and would be caught during the subtree sync</p>



<a name="221151689"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221151689" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Pietro Albini <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221151689">(Dec 29 2020 at 17:38)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232545">Joshua Nelson</span> <a href="#narrow/stream/233931-t-compiler.2Fmajor-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394/near/221148897">said</a>:</p>
<blockquote>
<p><span class="user-mention silent" data-user-id="121055">Pietro Albini</span> <a href="#narrow/stream/233931-t-compiler.2Fmajor-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394/near/221147725">said</a>:</p>
<blockquote>
<p>(mostly on CI -- which doesn't use <code>git submodule</code> -- and when you need to interact with the commit history)</p>
</blockquote>
<p>how does CI build the compiler without using x.py? x.py runs git submodule</p>
</blockquote>
<p><a href="https://github.com/rust-lang/rust/blob/master/src/ci/init_repo.sh">https://github.com/rust-lang/rust/blob/master/src/ci/init_repo.sh</a></p>



<a name="221151705"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221151705" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Pietro Albini <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221151705">(Dec 29 2020 at 17:39)</a>:</h4>
<p>executed before ./x.py</p>



<a name="221151745"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221151745" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Pietro Albini <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221151745">(Dec 29 2020 at 17:39)</a>:</h4>
<p>basically for the big submodules we do some trickery to remove the submodule itself and replace it with the archive of the last commit</p>



<a name="221151755"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221151755" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Pietro Albini <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221151755">(Dec 29 2020 at 17:39)</a>:</h4>
<p>which speeds up things a lot, especially for llvm</p>



<a name="221151825"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221151825" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221151825">(Dec 29 2020 at 17:40)</a>:</h4>
<p>oh boy <span aria-label="laughing" class="emoji emoji-1f606" role="img" title="laughing">:laughing:</span></p>



<a name="221151834"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221151834" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221151834">(Dec 29 2020 at 17:40)</a>:</h4>
<p>it looks like you only do that for llvm and some of the docs though: <a href="https://github.com/rust-lang/rust/blob/158f8d034b15e65ba8dc0d066358dd0632bfcd6e/src/ci/init_repo.sh#L50">https://github.com/rust-lang/rust/blob/158f8d034b15e65ba8dc0d066358dd0632bfcd6e/src/ci/init_repo.sh#L50</a></p>



<a name="221151850"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221151850" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221151850">(Dec 29 2020 at 17:40)</a>:</h4>
<p>so it wouldn't be affected by making backtrace and stdarch a subtree</p>



<a name="221151901"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221151901" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Pietro Albini <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221151901">(Dec 29 2020 at 17:41)</a>:</h4>
<p>I'm curious how fast it would be if we ran that unconditionally for every submodule</p>



<a name="221152245"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221152245" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Eric Huss <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221152245">(Dec 29 2020 at 17:46)</a>:</h4>
<p>The concern is that if we want to make the dependency between rustc and the standard library explicit, it wouldn't work. For example:</p>
<div class="codehilite" data-code-language="TOML"><pre><span></span><code><span class="c1"># Somewhere in a rustc Cargo.toml.</span>
<span class="n">std</span> <span class="o">=</span> <span class="p">{</span> <span class="n">path</span><span class="o">=</span><span class="s">"../../library/std"</span> <span class="p">}</span>
</code></pre></div>
<p>These can't cross workspace boundaries. It could maybe work if Cargo supported nested workspaces. Just pointing out that making it a separate workspace will make things more difficult. </p>
<p>I understand that splitting into a separate repository has its benefits, but there are quite a few drawbacks as well:</p>
<ul>
<li>There seems to be a high risk that issue tracking would be a mess. How would this work?</li>
<li>Someone would need to take the time to regularly do syncs between the two repositories. Who would do that?</li>
<li>My understanding is that <code>git subtree</code> support is still not great. Is it really ready for more repositories?</li>
<li>I suspect something like the standard library would end up with a lot of PRs landing in both repositories. This I think would make coordination of changes harder, and trouble with conflicts greater.</li>
<li>How would CI be configured, such that commits to the standard library don't end up causing a lot of breakage? Is that affordable?</li>
<li>Profiles may need to be specified in multiple places.</li>
<li>How would the separate repository handle stylistic choices like tidy and rustfmt?</li>
<li>I suspect once you have a separate repository, people will want to have some way do something other than <code>cargo test</code>, which I'm uncertain is possible.</li>
</ul>
<p>At least for using a separate workspace, I think it is feasible, but there are drawbacks which will make it harder to work with. The difference between <code>cd library &amp;&amp; cargo check</code> and <code>cargo check -p test</code> seems minimal and trivial, and I don't think the benefit of being able to <code>cd library &amp;&amp; cargo check</code> over <code>cargo check -p test</code> to be worth it.</p>
<p>I'm not sure Zulip is really a great way to discuss all the issues.</p>



<a name="221152353"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221152353" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221152353">(Dec 29 2020 at 17:47)</a>:</h4>
<blockquote>
<p>I'm not sure Zulip is really a great way to discuss all the issues.</p>
</blockquote>
<p>would hackmd be better maybe?</p>



<a name="221152405"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221152405" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221152405">(Dec 29 2020 at 17:48)</a>:</h4>
<blockquote>
<p>I don't think the benefit of being able to cd library &amp;&amp; cargo check over cargo check -p test to be worth it.</p>
</blockquote>
<p>I agree <em>if we can get <code>cargo check</code> to give a reasonable error</em></p>



<a name="221152430"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221152430" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221152430">(Dec 29 2020 at 17:48)</a>:</h4>
<p>right now it gives about 150 errors that <code>Sized</code> isn't implemented for <code>()</code>, which is basically useless for figuring out what went wrong</p>



<a name="221152497"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221152497" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221152497">(Dec 29 2020 at 17:49)</a>:</h4>
<p>I also want to point out one of the motivations is not just 'fewer commands' but also 'make the standard library less special'</p>



<a name="221152509"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221152509" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> bjorn3 <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221152509">(Dec 29 2020 at 17:49)</a>:</h4>
<p>IMO splitting the workspace is a good idea, but splitting the repo is not really.</p>



<a name="221152524"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221152524" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221152524">(Dec 29 2020 at 17:50)</a>:</h4>
<p><span class="user-mention silent" data-user-id="133247">bjorn3</span> <a href="#narrow/stream/233931-t-compiler.2Fmajor-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394/near/221152509">said</a>:</p>
<blockquote>
<p>IMO splitting the workspace is a good idea, but splitting the repo is not.</p>
</blockquote>
<p>after reading about CI and the issue tracker, I agree actually</p>



<a name="221152563"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221152563" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221152563">(Dec 29 2020 at 17:50)</a>:</h4>
<p>I'll take that out of the MCP</p>



<a name="221152574"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221152574" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221152574">(Dec 29 2020 at 17:50)</a>:</h4>
<blockquote>
<p>I suspect once you have a separate repository, people will want to have some way do something other than cargo test, which I'm uncertain is possible.</p>
</blockquote>
<p><span class="user-mention" data-user-id="120518">@Eric Huss</span> what do you mean by 'other than cargo test'?</p>



<a name="221152642"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221152642" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221152642">(Dec 29 2020 at 17:51)</a>:</h4>
<p>another alternative to this is to make an x.py wrapper that knows that <code>x build</code> in library/std means <code>x.py build --stage 0 library/std</code> but that gets even further from the goal of 'make the standard library less special'</p>



<a name="221152699"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221152699" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Laurențiu <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221152699">(Dec 29 2020 at 17:52)</a>:</h4>
<blockquote>
<p>There seems to be a high risk that issue tracking would be a mess. How would this work?</p>
</blockquote>
<p>By disabling the issue tracker, maybe.</p>



<a name="221152729"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221152729" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> bjorn3 <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221152729">(Dec 29 2020 at 17:52)</a>:</h4>
<p>You could have <code>./x.py</code> accept paths relative to the current working dir and have it default to <code>.</code>.</p>



<a name="221152781"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221152781" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221152781">(Dec 29 2020 at 17:53)</a>:</h4>
<p>sure, and these would all be good QOL things, but they're mostly good for existing contributors</p>



<a name="221152802"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221152802" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221152802">(Dec 29 2020 at 17:53)</a>:</h4>
<p>I want to help people who've never used x.py before and don't know why they need it</p>



<a name="221152973"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221152973" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Eric Huss <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221152973">(Dec 29 2020 at 17:55)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232545">Joshua Nelson</span> <a href="#narrow/stream/233931-t-compiler.2Fmajor-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394/near/221152353">said</a>:</p>
<blockquote>
<blockquote>
<p>I'm not sure Zulip is really a great way to discuss all the issues.</p>
</blockquote>
<p>would hackmd be better maybe?</p>
</blockquote>
<p>I'm not sure.  I don't really want to put much energy into this.  Just trying to point out that if you move forward, it will make things more difficult.</p>
<p><span class="user-mention silent" data-user-id="232545">Joshua Nelson</span> <a href="#narrow/stream/233931-t-compiler.2Fmajor-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394/near/221152405">said</a>:</p>
<blockquote>
<blockquote>
<p>I don't think the benefit of being able to cd library &amp;&amp; cargo check over cargo check -p test to be worth it.</p>
</blockquote>
<p>I agree <em>if we can get <code>cargo check</code> to give a reasonable error</em></p>
</blockquote>
<p>I don't agree.  I wouldn't expect to be able to check out any large project and run random commands (like <code>make</code>) and just expect it to work.  </p>
<p><span class="user-mention silent" data-user-id="232545">Joshua Nelson</span> <a href="#narrow/stream/233931-t-compiler.2Fmajor-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394/near/221152574">said</a>:</p>
<blockquote>
<blockquote>
<p>I suspect once you have a separate repository, people will want to have some way do something other than cargo test, which I'm uncertain is possible.</p>
</blockquote>
<p><span class="user-mention silent" data-user-id="120518">Eric Huss</span> what do you mean by 'other than cargo test'?</p>
</blockquote>
<p>Like being able to build something with that customized standard library.</p>



<a name="221153077"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221153077" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> bjorn3 <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221153077">(Dec 29 2020 at 17:56)</a>:</h4>
<blockquote>
<p>I don't agree. I wouldn't expect to be able to check out any large project and run random commands (like make) and just expect it to work. </p>
</blockquote>
<p>For pretty much all rust projects, even large ones <code>cargo build</code> just works. (Assuming you have the necessary C libraries installed)</p>



<a name="221153965"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221153965" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221153965">(Dec 29 2020 at 18:07)</a>:</h4>
<p>as a point of interest, servo also has <code>./mach build --dev</code></p>



<a name="221154011"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221154011" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221154011">(Dec 29 2020 at 18:08)</a>:</h4>
<p>but the error for <code>cargo check</code>, while not exactly helpful, at least gives you some idea what went wrong:</p>
<div class="codehilite"><pre><span></span><code>error[E0463]: can&#39;t find crate for `rustc_ast`
  --&gt; components/script_plugins/lib.rs:22:1
   |
22 | extern crate rustc_ast;
   | ^^^^^^^^^^^^^^^^^^^^^^^ can&#39;t find crate
</code></pre></div>



<a name="221154072"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221154072" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221154072">(Dec 29 2020 at 18:09)</a>:</h4>
<p>compare that to <code>cargo check</code> in library/std: <a href="https://termbin.com/txtu">https://termbin.com/txtu</a></p>



<a name="221154191"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221154191" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221154191">(Dec 29 2020 at 18:11)</a>:</h4>
<div class="codehilite" data-code-language="Bash"><pre><span></span><code><span class="c1"># The beginning of this script is both valid shell and valid python,</span>
<span class="c1"># such that the script starts with the shell and is reexecuted with</span>
<span class="c1"># the right python.</span>
<span class="s1">''':'</span> <span class="o">&amp;&amp;</span> <span class="k">if</span> <span class="o">[</span> ! -z <span class="s2">"</span><span class="nv">$MSYSTEM</span><span class="s2">"</span> <span class="o">]</span> <span class="p">;</span> <span class="k">then</span> <span class="nb">exec</span> python <span class="s2">"</span><span class="nv">$0</span><span class="s2">"</span> <span class="s2">"</span><span class="nv">$@</span><span class="s2">"</span> <span class="p">;</span> <span class="k">else</span> which python2.7 &gt; /dev/null <span class="m">2</span>&gt; /dev/null <span class="o">&amp;&amp;</span> <span class="nb">exec</span> python2.7 <span class="s2">"</span><span class="nv">$0</span><span class="s2">"</span> <span class="s2">"</span><span class="nv">$@</span><span class="s2">"</span> <span class="o">||</span> <span class="nb">exec</span> python <span class="s2">"</span><span class="nv">$0</span><span class="s2">"</span> <span class="s2">"</span><span class="nv">$@</span><span class="s2">"</span> <span class="p">;</span> <span class="k">fi</span>
<span class="s1">''</span><span class="err">'</span>
</code></pre></div>
<p>heh, maybe we should do this for x.py</p>



<a name="221154486"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221154486" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> bjorn3 <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221154486">(Dec 29 2020 at 18:15)</a>:</h4>
<p>That reminds me of <a href="https://github.com/bjorn3/rustc_codegen_cranelift/blob/dbee13661efa269cb4cd57bb4c6b99a19732b484/scripts/filter_profile.rs">https://github.com/bjorn3/rustc_codegen_cranelift/blob/dbee13661efa269cb4cd57bb4c6b99a19732b484/scripts/filter_profile.rs</a> which is a bash script that jit compiles itself as rust executable using cg_clif.</p>



<a name="221154646"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221154646" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221154646">(Dec 29 2020 at 18:17)</a>:</h4>
<blockquote>
<p>I don't agree. I wouldn't expect to be able to check out any large project and run random commands (like make) and just expect it to work.</p>
</blockquote>
<p>for what it's worth, this comes up over and over again:</p>
<ul>
<li><a href="#narrow/stream/131828-t-compiler/topic/cargo.20directly.20working.20in.20tree">https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/cargo.20directly.20working.20in.20tree</a></li>
<li><a href="#narrow/stream/131828-t-compiler/topic/mentoring/near/221139246">https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/mentoring/near/221139246</a></li>
<li><a href="#narrow/stream/238009-t-compiler/meetings/topic/planning%20meeting%202020.09.04/near/209245785">https://rust-lang.zulipchat.com/#narrow/stream/238009-t-compiler/meetings/topic/planning%20meeting%202020.09.04/near/209245785</a></li>
<li><a href="#narrow/stream/131828-t-compiler/topic/RIIR.20contributor.20entry.20point">https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/RIIR.20contributor.20entry.20point</a></li>
</ul>



<a name="221154656"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221154656" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221154656">(Dec 29 2020 at 18:17)</a>:</h4>
<p>it's not just me :/</p>



<a name="221155999"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221155999" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221155999">(Dec 29 2020 at 18:34)</a>:</h4>
<p>Sounds like it'd be harder to dogfood compiler features to me.</p>



<a name="221156040"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221156040" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221156040">(Dec 29 2020 at 18:34)</a>:</h4>
<p><span class="user-mention silent" data-user-id="123586">nagisa</span> <a href="#narrow/stream/233931-t-compiler.2Fmajor-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394/near/221155999">said</a>:</p>
<blockquote>
<p>Sounds like it'd be harder to dogfood compiler features to me.</p>
</blockquote>
<p>why do you think so?</p>



<a name="221156137"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221156137" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221156137">(Dec 29 2020 at 18:36)</a>:</h4>
<p>well, if the expectation is that checking out a std/ repo (if we're splitting it out) and just cargo +nightly build works, then you need to have a nightly published with features you want to use</p>



<a name="221156159"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221156159" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221156159">(Dec 29 2020 at 18:36)</a>:</h4>
<p>which by definition precludes dogfooding in libstd at the same time a feature is implemented in the compiler.</p>



<a name="221156170"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221156170" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221156170">(Dec 29 2020 at 18:36)</a>:</h4>
<p>oh I see - we could use beta out of tree instead</p>



<a name="221156185"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221156185" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221156185">(Dec 29 2020 at 18:36)</a>:</h4>
<p>and that actually works better because then we can add <code>rust-toolchain</code> and automatically have the right version</p>



<a name="221156227"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221156227" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221156227">(Dec 29 2020 at 18:37)</a>:</h4>
<p>I'd just have to figure out a way to pass <code>--cfg bootstrap</code></p>



<a name="221156309"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221156309" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221156309">(Dec 29 2020 at 18:38)</a>:</h4>
<p>if we don't split out std into a separate repo/worktree or whatever, then it doesn't really matter either way</p>



<a name="221156440"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221156440" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221156440">(Dec 29 2020 at 18:40)</a>:</h4>
<p>because then you can have a readme that reads something along the lines of "well, you can try <code>cargo build</code> and if it doesn't work go run <code>x.py</code> from repo root..."</p>



<a name="221156446"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221156446" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221156446">(Dec 29 2020 at 18:40)</a>:</h4>
<p>and in most cases the former would work.</p>



<a name="221156463"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221156463" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221156463">(Dec 29 2020 at 18:40)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232545">Joshua Nelson</span> <a href="#narrow/stream/233931-t-compiler.2Fmajor-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394/near/221156170">said</a>:</p>
<blockquote>
<p>oh I see - we could use beta out of tree instead</p>
</blockquote>
<p>I don't see how that solves anything?</p>



<a name="221156477"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221156477" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> bjorn3 <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221156477">(Dec 29 2020 at 18:41)</a>:</h4>
<p>Libstd has to compile with beta anyway for bootstrapping purposes.</p>



<a name="221156483"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221156483" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Laurențiu <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221156483">(Dec 29 2020 at 18:41)</a>:</h4>
<p>Are there PRs that introduce new language/compiler features and also add them to <code>libstd</code> at the same time?</p>



<a name="221156488"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221156488" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221156488">(Dec 29 2020 at 18:41)</a>:</h4>
<p><span class="user-mention silent" data-user-id="203546">Laurențiu Nicola</span> <a href="#narrow/stream/233931-t-compiler.2Fmajor-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394/near/221156483">said</a>:</p>
<blockquote>
<p>Are there PRs that introduce new language/compiler features and also add them to <code>libstd</code> at the same time?</p>
</blockquote>
<p>yes, let me find a link</p>



<a name="221156506"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221156506" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Laurențiu <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221156506">(Dec 29 2020 at 18:41)</a>:</h4>
<p>IMHO, needing a published compiler is more of a feature than a bug</p>



<a name="221156519"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221156519" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221156519">(Dec 29 2020 at 18:41)</a>:</h4>
<blockquote>
<p>Libstd has to compile with beta anyway for bootstrapping purposes.</p>
</blockquote>
<p>Sure, but its "just" a question of <code>cfg(stage0)</code>. Are you proposing that contributors would be changing stage0 code?</p>



<a name="221156568"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221156568" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221156568">(Dec 29 2020 at 18:42)</a>:</h4>
<p><span class="user-mention silent" data-user-id="123586">nagisa</span> <a href="#narrow/stream/233931-t-compiler.2Fmajor-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394/near/221156519">said</a>:</p>
<blockquote>
<p>Sure, but its "just" a question of <code>cfg(stage0)</code>. Are you proposing that contributors would be changing stage0 code?</p>
</blockquote>
<p>yes, I think that makes more sense then having them change stage1</p>



<a name="221156654"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221156654" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221156654">(Dec 29 2020 at 18:43)</a>:</h4>
<p>who would ensure that <code>cfg(stage0)</code> and <code>cfg(not(stage0))</code> stay in sync? Until now typically you'd just delete the <code>cfg(stage0)</code> code when trains roll over.</p>



<a name="221156735"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221156735" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> bjorn3 <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221156735">(Dec 29 2020 at 18:44)</a>:</h4>
<p>Why would that need to change?</p>



<a name="221156736"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221156736" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221156736">(Dec 29 2020 at 18:44)</a>:</h4>
<p>If contributors adjust code in <code>cfg(stage0)</code> then we position ourselves for a situation where changes just disappear.</p>



<a name="221156747"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221156747" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221156747">(Dec 29 2020 at 18:44)</a>:</h4>
<p><span class="user-mention silent" data-user-id="123586">nagisa</span> <a href="#narrow/stream/233931-t-compiler.2Fmajor-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394/near/221156654">said</a>:</p>
<blockquote>
<p>who would ensure that <code>cfg(stage0)</code> and <code>cfg(not(stage0))</code> stay in sync? Until now typically you'd just delete the <code>cfg(stage0)</code> code when trains roll over.</p>
</blockquote>
<p>you could still do that with subtree syncs, the nice thing about subtree is you can change it on either end</p>



<a name="221156762"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221156762" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221156762">(Dec 29 2020 at 18:44)</a>:</h4>
<p>it would make the syncs a little more prone to conflict but not by a ton I don't think</p>



<a name="221156788"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221156788" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> bjorn3 <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221156788">(Dec 29 2020 at 18:45)</a>:</h4>
<p><span class="user-mention silent" data-user-id="123586">nagisa</span> <a href="#narrow/stream/233931-t-compiler.2Fmajor-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394/near/221156736">said</a>:</p>
<blockquote>
<p>If contributors adjust code in <code>cfg(stage0)</code> then we position ourselves for a situation where changes just disappear.</p>
</blockquote>
<p>A non-compiler contributor rarely has to touch <code>cfg(not(bootstrap))</code> code. That is only for when the compiler changed.</p>



<a name="221156888"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221156888" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221156888">(Dec 29 2020 at 18:46)</a>:</h4>
<p>what is a non-compiler contributor? Are we looking to reorganize the ownership of the libstd implementation again?</p>



<a name="221156911"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221156911" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221156911">(Dec 29 2020 at 18:47)</a>:</h4>
<p>Given that implementation of libstd is currently under T-compiler purview AFAIK</p>



<a name="221156930"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221156930" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> bjorn3 <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221156930">(Dec 29 2020 at 18:47)</a>:</h4>
<p>I mean someone that only want to change libstd and not the compiler. For example to improve the performance of say <code>Vec</code> or add a new api.</p>



<a name="221156948"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221156948" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221156948">(Dec 29 2020 at 18:47)</a>:</h4>
<p>'someone who primarily contributes to the standard library'</p>
<blockquote>
<p>Are we looking to reorganize the ownership of the libstd implementation again?</p>
</blockquote>
<p>no, none of this is oriented towards repeat contributors, this is for people who want to make a small API change and now have to think about bootstrapping</p>



<a name="221157317"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221157317" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221157317">(Dec 29 2020 at 18:53)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232545">Joshua Nelson</span> <a href="#narrow/stream/233931-t-compiler.2Fmajor-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394/near/221156488">said</a>:</p>
<blockquote>
<p><span class="user-mention silent" data-user-id="203546">Laurențiu Nicola</span> <a href="#narrow/stream/233931-t-compiler.2Fmajor-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394/near/221156483">said</a>:</p>
<blockquote>
<p>Are there PRs that introduce new language/compiler features and also add them to <code>libstd</code> at the same time?</p>
</blockquote>
<p>yes, let me find a link</p>
</blockquote>
<p>couldn't find it :( but it was related to adding a new lang intrinsic</p>



<a name="221157344"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221157344" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221157344">(Dec 29 2020 at 18:53)</a>:</h4>
<p>also I want to be clear: I am not proposing to change the bootstrapping model at all. I just want an easier way to say <code>x.py build --stage 0 library/std</code></p>



<a name="221157403"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221157403" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221157403">(Dec 29 2020 at 18:54)</a>:</h4>
<p><span class="user-mention" data-user-id="203546">@Laurențiu Nicola</span> see <a href="https://rustc-dev-guide.rust-lang.org/building/bootstrapping.html#stages-and-std">https://rustc-dev-guide.rust-lang.org/building/bootstrapping.html#stages-and-std</a> for why 'use a fixed version of the compiler' doesn't work</p>



<a name="221157624"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221157624" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Laurențiu <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221157624">(Dec 29 2020 at 18:57)</a>:</h4>
<p>Which part? I wasn't proposing that new compilers would be able to link an old <code>libstd</code> to produce working executables</p>



<a name="221157650"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221157650" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221157650">(Dec 29 2020 at 18:57)</a>:</h4>
<p><span class="user-mention silent" data-user-id="203546">Laurențiu Nicola</span> <a href="#narrow/stream/233931-t-compiler.2Fmajor-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394/near/221156506">said</a>:</p>
<blockquote>
<p>IMHO, needing a published compiler is more of a feature than a bug</p>
</blockquote>
<p>^ this part</p>



<a name="221157824"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221157824" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Laurențiu <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221157824">(Dec 29 2020 at 18:59)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232545">Joshua Nelson</span> <a href="#narrow/stream/233931-t-compiler.2Fmajor-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394/near/221157317">said</a>:</p>
<blockquote>
<p>couldn't find it :( but it was related to adding a new lang intrinsic</p>
</blockquote>
<p>Yeah, that makes sense</p>



<a name="221158071"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221158071" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221158071">(Dec 29 2020 at 19:02)</a>:</h4>
<p>As far as subtrees are concerned, I have a hard time imagining myself going through multiple repos to review changes to libstd. Use of subtree has different tradeoffs here than clippy/miri/etc tools if nothing else about libstd changes. clippy/miri generally develop features in the separate repo and whatever compatibility bits necessary with the compiler in <code>rust-lang/rust</code>.</p>
<p>The only way libstd split into another repo makes sense is if we look towards adopting a similar model to clippy/miri. Which also implies reduced dogfooding, which might actually be fine.</p>
<p>Yet another consideration if we do so is how that impacts tooling around compiler that we have. For instance we do <code>@rust-timer perf</code> a number of libstd changes which then benches the bootstrapped compiler with the changed libstd -- having a separate repo for libstd makes that harder if not impossible to do automatically?</p>



<a name="221158145"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221158145" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221158145">(Dec 29 2020 at 19:03)</a>:</h4>
<p>personally I think we should drop the subtree part of this</p>



<a name="221158205"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221158205" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221158205">(Dec 29 2020 at 19:04)</a>:</h4>
<p>like you and <span class="user-mention silent" data-user-id="120518">Eric Huss</span> brought up, that has a lot more complications that are incidental to the actual change I want, which is for <code>cargo build</code> to work</p>



<a name="221158260"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221158260" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221158260">(Dec 29 2020 at 19:05)</a>:</h4>
<p>Yeah, if the change is just about getting <code>cd library/libstd &amp;&amp; cargo build</code> work out of the box (maybe most of the time if not always) then its a no-brainer.</p>



<a name="221158504"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221158504" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221158504">(Dec 29 2020 at 19:08)</a>:</h4>
<p><span class="user-mention" data-user-id="232545">@Joshua Nelson</span> I see you striked out the subtree, you want to do same for "Make a new rust-lang/library repository" under "Implementation" section.</p>



<a name="221159261"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221159261" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221159261">(Dec 29 2020 at 19:18)</a>:</h4>
<p>thanks, done</p>



<a name="221194782"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221194782" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221194782">(Dec 30 2020 at 07:09)</a>:</h4>
<p><span class="user-mention" data-user-id="232545">@Joshua Nelson</span> FWIW, I really really hope that the library and similar don't start using subtree. That would make it much <em>harder</em> for me to contribute to them.</p>



<a name="221194795"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221194795" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221194795">(Dec 30 2020 at 07:09)</a>:</h4>
<p>I do like the idea of being able to build in a subdirectory.</p>



<a name="221194848"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221194848" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221194848">(Dec 30 2020 at 07:10)</a>:</h4>
<p>But keeping rust-lang/rust more self-contained makes contribution much simpler, to me.</p>



<a name="221194850"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221194850" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221194850">(Dec 30 2020 at 07:10)</a>:</h4>
<p>And easier to coordinate changes.</p>



<a name="221194864"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221194864" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221194864">(Dec 30 2020 at 07:10)</a>:</h4>
<p>(Caught up now, glad to hear the subtree was dropped, sorry for the distraction.)</p>



<a name="221255211"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221255211" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> triagebot <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221255211">(Dec 30 2020 at 23:23)</a>:</h4>
<p><span class="user-group-mention" data-user-group-id="492">@T-compiler</span>: Proposal <a href="https://github.com/rust-lang/compiler-team/issues/394#issuecomment-752788251">#394</a> has been seconded, and will be approved in 10 days if no objections are raised.</p>



<a name="221447359"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221447359" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221447359">(Jan 03 2021 at 11:45)</a>:</h4>
<p>FWIW, if the main concern is "people do <code>cargo check</code> and the resulting error is awful", one could also imagine having a file like <code>.no-cargo</code> or so, which makes cargo bail immediately with a custom error message -- and that error could tell people the right <code>x.py</code> invocations instead.</p>



<a name="221455510"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221455510" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221455510">(Jan 03 2021 at 15:20)</a>:</h4>
<p><span class="user-mention silent" data-user-id="120791">RalfJ</span> <a href="#narrow/stream/233931-t-compiler.2Fmajor-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394/near/221447359">said</a>:</p>
<blockquote>
<p>FWIW, if the main concern is "people do <code>cargo check</code> and the resulting error is awful", one could also imagine having a file like <code>.no-cargo</code> or so, which makes cargo bail immediately with a custom error message -- and that error could tell people the right <code>x.py</code> invocations instead.</p>
</blockquote>
<p>I already tried this, it breaks things like <code>cargo tree</code>: <a href="https://github.com/rust-lang/rust/pull/79021">https://github.com/rust-lang/rust/pull/79021</a></p>



<a name="221458344"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221458344" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221458344">(Jan 03 2021 at 16:22)</a>:</h4>
<p>Well, that's using a hack to do this</p>



<a name="221458350"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221458350" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221458350">(Jan 03 2021 at 16:22)</a>:</h4>
<p>if we add support for this in cargo we could do better</p>



<a name="221459005"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221459005" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221459005">(Jan 03 2021 at 16:36)</a>:</h4>
<p>I would rather fix this properly than add hacks to cargo :/</p>



<a name="221459009"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221459009" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221459009">(Jan 03 2021 at 16:36)</a>:</h4>
<p>I can't imagine anyone using this besides rust-lang/rust</p>



<a name="221468175"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221468175" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nadrieril <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221468175">(Jan 03 2021 at 20:02)</a>:</h4>
<p>Any other project that can't use cargo for some reason? Like maybe projects that need xargo</p>



<a name="221469388"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221469388" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oliver <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221469388">(Jan 03 2021 at 20:28)</a>:</h4>
<p><code>rust-analyzer</code> and <code>Redox</code>?</p>



<a name="221469716"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/221469716" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> bjorn3 <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#221469716">(Jan 03 2021 at 20:34)</a>:</h4>
<p><code>rust-analyzer</code> uses <a href="https://github.com/rust-analyzer/rust-analyzer/tree/master/xtask/src"><code>xtask</code></a> for a variety of things, but can be compiled just fine without. You then just have to build the vscode extension manually.</p>



<a name="222716505"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Make%20it%20easier%20to%20build%20the%20standard%20libr%E2%80%A6%20compiler-team%23394/near/222716505" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> triagebot <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Make.20it.20easier.20to.20build.20the.20standard.20libr.E2.80.A6.20compiler-team.23394.html#222716505">(Jan 14 2021 at 13:30)</a>:</h4>
<p>This proposal has been accepted: <a href="https://github.com/rust-lang/compiler-team/issues/394">#394</a>.</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>